1 Введение

1.1 Анализ вклада социальных, поведентческих и медицинских факторов на степень нарушения гликемического контроля в смешанной когорте из 4000 пациентов

В нашем распоряжении оказался набор данных о пациентах: их клинической истории, образе жизни, биохимических показателях, социальных компонентах их жизни. Весьма исчерпывающий объем информации, представленный в имеющеся датасете позволяет исследовать основные предикторы развития диабета, а так же изучить распределение этого заболевания среди населения и зависимость его возникновения от разнообразных факторов.

2 Разведочный анализ данных (EDA) и коррекция

2.1 Описание переменных

В полученном датасете представлена следующая информация о пациентах:

  • Возраст и пол

  • Сведения о социальных показателях: национальность, уровень образования и доход, статус трудоустройства. Категориальные данные.

  • Информация об образе жизни: курение, потребление алкоголя, физическая активность, диета, количество сна, экранное время.

  • Клиническая история: наличие диабета в семье, наличие проблем с кровяным давлением или болезней сердца и сосудов.

  • Антропометрические показатели: ИМТ и отношение размера талии к бедрам.

  • Клинические и биохимические показатели: кровяное давление, ЧСС, уровень холестерола, триглицеридов, глюкозы, инсулина, hba1c

  • Также представлены сведения о рисках развития диабета, типе заболевания и наличии диабета в целом.

2.2 Проверка значений переменных

2.2.1 Работа с пропущенными значениями

table(is.na(data))
## 
##  FALSE 
## 124000

Нам повезло, пропущенных значений в наборе данных нет.

2.2.2 Проверка типов переменных и устранение недочетов

При загрузке датафрейма типы данных были установлены автоматически:

Переменная

Тип данных

age

numeric

gender

character

ethnicity

character

education_level

character

income_level

character

employment_status

character

smoking_status

character

alcohol_consumption_per_week

numeric

physical_activity_minutes_per_week

numeric

diet_score

numeric

sleep_hours_per_day

numeric

screen_time_hours_per_day

numeric

family_history_diabetes

numeric

hypertension_history

numeric

cardiovascular_history

numeric

bmi

numeric

waist_to_hip_ratio

numeric

systolic_bp

numeric

diastolic_bp

numeric

heart_rate

numeric

cholesterol_total

numeric

hdl_cholesterol

numeric

ldl_cholesterol

numeric

triglycerides

numeric

glucose_fasting

numeric

glucose_postprandial

numeric

insulin_level

numeric

hba1c

numeric

diabetes_risk_score

numeric

diabetes_stage

character

diagnosed_diabetes

numeric

Переменные, которые являются категориальными, оказались либо строковыми, либо численными. Перед приведением их к факторам убедимся, что среди категориальных данных нет ошибок или опечаток

## $gender
## [1] "Female" "Male"   "Other" 
## 
## $ethnicity
## [1] "Hispanic" "White"    "Black"    "Asian"    "Other"   
## 
## $education_level
## [1] "Graduate"     "Highschool"   "Postgraduate" "No formal"   
## 
## $income_level
## [1] "Middle"       "Lower-Middle" "Upper-Middle" "Low"          "High"        
## 
## $employment_status
## [1] "Employed"   "Student"    "Retired"    "Unemployed"
## 
## $smoking_status
## [1] "Never"   "Current" "Former" 
## 
## $family_history_diabetes
## [1] 1 0
## 
## $hypertension_history
## [1] 0 1
## 
## $cardiovascular_history
## [1] 0 1
## 
## $diabetes_stage
## [1] "Type 2"       "No Diabetes"  "Pre-Diabetes" "Gestational"  "Type 1"      
## 
## $diagnosed_diabetes
## [1] 1 0

С данными все хорошо, спокойно присваиваем им факторный тип.

2.2.3 Работа с выбросами

Ввиду разных масштабов имеющихся числовых данных было принято решение провести Z-стандартизацию значений для упрощения восприятия визуализации выбросов, представленной выше.

В глаза бросается самый высокий выброс в переменной physical activity, однако если посмотреть на его значение, то станет ясно, что этот пациент занимается физ. нагрузками около 12 часов в неделю, что может быть вполне реалистично. Этот выброс соответствует пациентке 39 лет, курящей и употребляющей алкоголь в среднем 5 раз в неделю, с индексом массы тела 29.9 и диагностированным диабетом.

Остальные значения, оказавшиеся за пределами межквартильного размаха, также являются реалистичными.

Age

Gender

Smoking

Alcohol Consumption per Week

Physical activity, min/week

Diagnosed Diabetes

Diabetes Stage

39

Female

Current

5

751

yes

Type 2

Таким образом, в имеющемся наборе данных не было обнаружен выбросов, похожих на ошибки наблюдений. Мы проверили наличие отсутствующих значений и выбросов, а также привели все переменные к надлежащим типам данных. Можем ознакомиться с базовыми описательными статистиками и приступать к проверке гипотез.

Variables

mean

sd

median

min

max

age

49.82

15.83

50.00

18.00

90.00

alcohol_consumption_per_week

2.00

1.43

2.00

0.00

8.00

physical_activity_minutes_per_week

118.97

83.92

100.00

0.00

751.00

diet_score

6.02

1.79

6.00

0.00

10.00

sleep_hours_per_day

6.97

1.08

7.00

3.40

10.00

screen_time_hours_per_day

5.97

2.45

5.90

0.50

14.20

bmi

25.62

3.61

25.60

15.00

38.20

waist_to_hip_ratio

0.86

0.05

0.86

0.68

1.05

systolic_bp

115.78

14.41

116.00

90.00

174.00

diastolic_bp

75.41

8.17

76.00

50.00

110.00

heart_rate

69.77

8.41

70.00

40.00

99.00

cholesterol_total

187.13

32.37

187.00

100.00

306.00

hdl_cholesterol

54.12

10.24

54.00

21.00

91.00

ldl_cholesterol

103.93

33.72

103.00

50.00

238.00

triglycerides

121.11

43.73

121.00

30.00

283.00

glucose_fasting

109.73

13.61

109.00

60.00

158.00

glucose_postprandial

155.82

30.89

155.00

70.00

274.00

insulin_level

9.12

4.93

9.02

2.00

27.27

hba1c

6.40

0.81

6.36

4.00

9.37

diabetes_risk_score

29.76

9.01

28.60

6.90

60.90

##     gender        ethnicity        education_level       income_level 
##  Female:1946   Asian   : 463   Graduate    :1387   High        : 177  
##  Male  :1980   Black   : 675   Highschool  :1830   Low         : 595  
##  Other :  74   Hispanic: 768   No formal   : 191   Lower-Middle:1007  
##                Other   : 223   Postgraduate: 592   Middle      :1430  
##                White   :1871                       Upper-Middle: 791  
##   employment_status smoking_status family_history_diabetes hypertension_history
##  Employed  :2369    Current: 812   no :3209                no :3019            
##  Retired   : 887    Former : 797   yes: 791                yes: 981            
##  Student   : 221    Never  :2391                                               
##  Unemployed: 523                                                               
##                                                                                
##  cardiovascular_history      diabetes_stage diagnosed_diabetes
##  no :3651               Gestational :  14   no :2000          
##  yes: 349               No Diabetes : 390   yes:2000          
##                         Pre-Diabetes:1596                     
##                         Type 1      :   8                     
##                         Type 2      :1992

Так же ниже представленна таблица корреляций:

3 Проверка гипотез

3.1 Гипотезы

3.1.1 Гипотеза 1

H0: Средние значения HBA1c не различаются у пациентов с разным уровнем образования, полом, семейной историей диабета, физической активностью в неделю, возрастом и имт

## Anova Table (Type II tests)
## 
## Response: hba1c
##                                     Sum Sq   Df  F value    Pr(>F)    
## age                                  57.37    1  98.7504 < 2.2e-16 ***
## bmi                                  41.53    1  71.4833 < 2.2e-16 ***
## physical_activity_minutes_per_week   28.42    1  48.9187 3.115e-12 ***
## family_history_diabetes             137.25    1 236.2481 < 2.2e-16 ***
## gender                                0.25    2   0.2137    0.8076    
## education_level                       0.43    3   0.2459    0.8643    
## Residuals                          2318.07 3990                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Проверка критериев применимости дисперсионного анализа:

  1. Линейность свяи

  1. Нормальность остатков
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(hba1c_model)
## W = 0.99765, p-value = 8.341e-06
  1. Постоянство дисперсий (гомоскедастичность)
## 
##  studentized Breusch-Pagan test
## 
## data:  hba1c_model
## BP = 13.479, df = 9, p-value = 0.1421
  1. Отсутствие мультиколлинеарности
##                                        GVIF Df GVIF^(1/(2*Df))
## age                                1.011804  1        1.005885
## bmi                                1.018884  1        1.009398
## physical_activity_minutes_per_week 1.008369  1        1.004176
## family_history_diabetes            1.001497  1        1.000748
## gender                             1.001929  2        1.000482
## education_level                    1.002856  3        1.000475
  1. Независимость наблюдений
## 
##  Durbin-Watson test
## 
## data:  hba1c_model
## DW = 1.9842, p-value = 0.3085
## alternative hypothesis: true autocorrelation is greater than 0

По вышепредставленым графикам и результатам тестов видно, что условия применимости соблюдены.

Вывод: Нулевую гипотезу об отсутствии влияния для наследственности, возраста, ИМТ и физической активности имеем право отвергнуть. При этом у нас недостаточно оснований отвергнуть нулевую гипотезу для пола и уровня образования. То есть, последние два фактора в данной спецификации модели не несут статистически значимой объясняющей способности для вариации HbA1c.

3.1.2 Гипотеза 2

3.1.2.1 Зависит ли уровень инсулина в крови пациента от социо-экономических факторов в жизни пациента?

Известно, что повышенный уровень инсулина является одной из предпосылок диабета. Если среди социальных факторов удастся выявить предикторы повышенного уровня инсулина, то пациенты, оказавшиеся в группе риска, получат возможность предпринять своевременные меры и предотвратить развитие заболевания.

Нулевая гипотеза: социальные факторы в жизни пациента не влияют на уровень инсулина и искать предикторы нужно в другой группе параметров. Альтернативная гипотеза: социальные факторы оказывают эффект на уровень инсулина у пациентов.

3.1.2.2 Выбор модели и подходящих параметров

Для начала определимся с выбранными предикторами.

В рамках первой проверки построим модель со следующими предикторами: ethnicity, education_level, income_level, employment_status.

Зависимость уровня инсулина от социальных предикторов. ANOVA

Predictors

Sum Sq

Df

F value

Pr(>F)

ethnicity

73.81507

4

0.7583998

0.5522839

education_level

10.22336

3

0.1400507

0.9360424

income_level

158.49894

4

1.6284691

0.1641494

employment_status

98.79700

3

1.3534296

0.2551917

Residuals

96,965.03508

3,985

3.1.2.3 Проверка допущений

Проверка предикторов на мультиколлинеарность

Predictors

GVIF

Df

GVIF^(1/(2*Df))

ethnicity

1.010710

4

1.001333

education_level

1.007336

3

1.001219

income_level

1.015603

4

1.001937

employment_status

1.010051

3

1.001668

Показатель VIF оказался равен 1 для все предикторов модели, мультиколлинеарности между ними нет.

Однако, к сожалению, наша модель не удовлетворяет допущениям для проведения ANOVA, поэтому мы используем непараметрический тест, а именно проведем серию попарных сравнений с помощью теста Вилкоксона, основанного на сравнении медиан групп.

3.1.2.4 Попарный тест Вилкоксона

pairwise.wilcox.test(x = work_data$insulin_level, g = work_data$ethnicity)$p.value
##          Asian     Black Hispanic    Other
## Black        1        NA       NA       NA
## Hispanic     1 1.0000000       NA       NA
## Other        1 0.8075869        1       NA
## White        1 1.0000000        1 0.757925
pairwise.wilcox.test(x = work_data$insulin_level, g = work_data$education_level)$p.value
##              Graduate Highschool No formal
## Highschool          1         NA        NA
## No formal           1          1        NA
## Postgraduate        1          1         1
pairwise.wilcox.test(x = work_data$insulin_level, g = work_data$income_level)$p.value
##              High       Low Lower-Middle Middle
## Low             1        NA           NA     NA
## Lower-Middle    1 0.2550710           NA     NA
## Middle          1 1.0000000    0.9964487     NA
## Upper-Middle    1 0.3920466    1.0000000      1
pairwise.wilcox.test(x = work_data$insulin_level, g = work_data$employment_status)$p.value
##             Employed   Retired   Student
## Retired    1.0000000        NA        NA
## Student    0.7491276 0.7491276        NA
## Unemployed 1.0000000 1.0000000 0.7491276

Ни для одного из 4х предикторов не было выявлено значимого влияния на уровень инсулина. Уровень инсулина в крови не зависит от социальных факторов.Принимаем нулевую гипотезу.

3.2 Модели

3.2.1 Модель 1

На основании значимых основных эффектов, выявленных в ANOVA, логичным следующим шагом будет проверка наличия статистически значимых взаимодействий между предикторами, в частности, между семейным анамнезом и модифицируемыми факторами риска.

Проверим конкретно взаимодействие между физической активностью в неделю и семейной историей диабета.

H0: Уровень HbA1c не зависит от взаимодействия между физической активностью в неделю и семейной историей диабета.

## 
## Call:
## lm(formula = hba1c ~ age + physical_activity_minutes_per_week * 
##     family_history_diabetes, data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.51471 -0.50772 -0.02231  0.49276  2.61899 
## 
## Coefficients:
##                                                              Estimate
## (Intercept)                                                 6.029e+00
## age                                                         8.281e-03
## physical_activity_minutes_per_week                         -1.103e-03
## family_history_diabetes                                     4.679e-01
## physical_activity_minutes_per_week:family_history_diabetes -3.973e-06
##                                                            Std. Error t value
## (Intercept)                                                 4.501e-02 133.962
## age                                                         7.681e-04  10.781
## physical_activity_minutes_per_week                          1.606e-04  -6.868
## family_history_diabetes                                     5.258e-02   8.899
## physical_activity_minutes_per_week:family_history_diabetes  3.723e-04  -0.011
##                                                            Pr(>|t|)    
## (Intercept)                                                 < 2e-16 ***
## age                                                         < 2e-16 ***
## physical_activity_minutes_per_week                         7.51e-12 ***
## family_history_diabetes                                     < 2e-16 ***
## physical_activity_minutes_per_week:family_history_diabetes    0.991    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7687 on 3995 degrees of freedom
## Multiple R-squared:  0.09377,    Adjusted R-squared:  0.09286 
## F-statistic: 103.3 on 4 and 3995 DF,  p-value: < 2.2e-16

Проверка критериев применимости линейной регрессии:

  1. Линейность связи

  1. Нормальность остатков
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model_inter)
## W = 0.99812, p-value = 0.0001002
  1. Постоянство дисперсий (гомоскедастичность)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_inter
## BP = 9.9249, df = 4, p-value = 0.04171
  1. Отсутствие мультиколлинеарности
##                                                        age 
##                                                   1.000082 
##                         physical_activity_minutes_per_week 
##                                                   1.229927 
##                                    family_history_diabetes 
##                                                   2.968941 
## physical_activity_minutes_per_week:family_history_diabetes 
##                                                   3.155714
  1. Независимость наблюдений
lmtest::dwtest(model_inter)
## 
##  Durbin-Watson test
## 
## data:  model_inter
## DW = 1.9773, p-value = 0.2362
## alternative hypothesis: true autocorrelation is greater than 0

По вышепредставленым графикам и результатам тестов видно, что условия применимости соблюдены.

Данная модель объясняет только 9% вариации HbA1c (R-squared = 0.1099). Это говорит о том, что существуют другие важные факторы, не включенные в модель. Влияние физической активности на уровень HbA1c одинаково для людей как с семейной историей диабета, так и без нее. Что говорит о том, что пользу от физической активности получают одинаково все группы. Имеем право принять гипотезу о том, что уровень HbA1c не зависит от взаимодействия между физической активностью в неделю и семейной историей диабета.

3.2.2 Модель 2

Попробуем определить основные предикторы диагностированного диабета среди клинических и биохимических данных. Так как зависимая переменная является категориальной, мы будем использовать общие линейные модели.

diabetes_model <- glm(data = work_data, diagnosed_diabetes ~ bmi + systolic_bp + diastolic_bp + cholesterol_total + triglycerides + glucose_fasting + insulin_level, family="binomial")

vif(diabetes_model)
##               bmi       systolic_bp      diastolic_bp cholesterol_total 
##          1.474208          1.110684          1.032396          1.073956 
##     triglycerides   glucose_fasting     insulin_level 
##          1.181782          1.024697          1.194993
summary(diabetes_model)
## 
## Call:
## glm(formula = diagnosed_diabetes ~ bmi + systolic_bp + diastolic_bp + 
##     cholesterol_total + triglycerides + glucose_fasting + insulin_level, 
##     family = "binomial", data = work_data)
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)       -1.247e+01  6.076e-01 -20.523   <2e-16 ***
## bmi                1.173e-02  1.279e-02   0.917    0.359    
## systolic_bp        1.680e-03  2.779e-03   0.605    0.545    
## diastolic_bp      -2.513e-03  4.652e-03  -0.540    0.589    
## cholesterol_total  7.462e-04  1.201e-03   0.621    0.534    
## triglycerides     -5.067e-04  9.394e-04  -0.539    0.590    
## glucose_fasting    1.107e-01  3.930e-03  28.167   <2e-16 ***
## insulin_level     -4.882e-03  8.289e-03  -0.589    0.556    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 5545.2  on 3999  degrees of freedom
## Residual deviance: 4223.4  on 3992  degrees of freedom
## AIC: 4239.4
## 
## Number of Fisher Scoring iterations: 4

Среди предикторов не было выявлено мультиколлинеарности, однако единсвенным достоверно значимым предиктором оказался уровень глюкозы в крови при анализе крови натощак.

Проверим модель, основывающуюся исключительно на уровне глюкозы и влияние этого предиктора на постановку диагноза:

## 
## Call:
## glm(formula = diagnosed_diabetes ~ glucose_fasting, family = "binomial", 
##     data = work_data)
## 
## Coefficients:
##                   Estimate Std. Error z value Pr(>|z|)    
## (Intercept)     -12.188164   0.426472  -28.58   <2e-16 ***
## glucose_fasting   0.111224   0.003882   28.65   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 5545.2  on 3999  degrees of freedom
## Residual deviance: 4225.8  on 3998  degrees of freedom
## AIC: 4229.8
## 
## Number of Fisher Scoring iterations: 4

Как мы видим, у пациентов с диагностированным диабетом уровень глюкозы в среднем выше, чем у пациентов, не страдающих данным заболеванием. Построенная нами модель в теории может быть использована для прогнозирования развития диабета у пациентов, однако нам также предстоит изучить влияние не только биохимических показателей, чтобы повысить точность модели.

4 Выводы

В имеющихся данных не было выявлено пропущенных значений или значительных выбросов, также были проверены 2 гипотезы и построены 2 модели линейной регрессии.

Было выявлено, что наследственность, возраст, ИМТ и уровень физической активности влияют на уровень hba1c у пациентов. Также нам удалось установить, что социальные факторы, такие как уровень образования, дохода, наличие работы или национальность не влияют на уровень инсулина и на эти параметры нельзя опираться при оценке риска развития диабета.

Построенные модели позволяют утверждать, что уровень физической активности при взаимодействии с семейной историей диабета на оказывает значимого влияния на уровень hba1c. При этом явно существуют другие предикторы этого параметра, которые не были определены в данной работе.

Также было установлено, что среди биохимических показателей на риск возникновения диабета достоверно влияет только уровень глюкозы в крови. Несмотря на то, что этот фактор можно использовать для предсказания риска развития заболевания, в дальнейшем следует изучить другие возможные его предикторы.

4.1 Использованные пакеты